Verilog

您所在的位置:网站首页 c51 看门狗 Verilog

Verilog

#Verilog | 来源: 网络整理| 查看: 265

一、 看门狗简介

看门狗:也称看门狗定时器,是常见于系统的一种外设;看门狗似乎就是一条看门的狗,如果系统一切正常则看门狗不叫,如果程序不正常,则看门狗则会将程序咬死(即程序强制复位)。

看门狗的作用:当一段程序跑飞,卡死或不受控制时,能使得系统强制重启;

喂狗:当看门狗被初始化后,需要在程序中每进行一段时间就重置看门狗模块的定时器计数值,防止程序被咬死;

程序咬死:当程序出现问题时(跑飞或锁死),导致看门狗定时器的计数值没能及时重置,当计数值达到设置的阈值后,看门狗定时器则输出复位信号,使得CPU强制复位;

二、看门狗分类

硬件看门狗:看门狗实际上就是一个计数器,硬件看门狗就是以硬件实现的一种计数器,其可以集成在单片机,SOC等系统中,使用硬件看门狗不用消耗额外的软件资源;

软件看门狗:利用软件实现软件计数器,利用该计数器判断是否计数达到阈值,达到阈值则调用软件复位程序,常与定时器中断一起使用;

窗口看门狗:独立看门狗在0-重载值之间都可以进行喂狗操作,这样如果程序跑飞反复在喂狗,则程序无法复位;窗口看门狗则对喂狗的时间设置了阈值(上下限),喂狗操作只能在阈值间进行喂狗,其他时间喂狗都无效;

三、实现 `timescale 1ns / 1ps module wtd #( parameter COUNTER_WIDTH = 16 ) ( input ref_clk, //system reference clock input nrst, //system reset signal, Valid: 1'b0 input en, //system enable signal, Valid: 1'b1 input [COUNTER_WIDTH - 1:0] up_threshold, //system upside threshold output [COUNTER_WIDTH - 1:0] count, //system clock counter output wtd_rst ); /**************************wtd inner signal design**************************/ reg [COUNTER_WIDTH - 1:0] count_r; wire rst_req; /**************************wtd inner signal connect**************************/ assign rst_req = (count == up_threshold) ? 1'b1 : 1'b0; // 计数器 assign count = count_r; always @(posedge ref_clk) begin if (~nrst) begin count_r


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3